PostgreSQL pg_wait_sampling 安装与配置

1 背景知识

本文主要介绍如何在 PostgreSQL16 环境下使用源码安装 pg_wait_sampling 插件。

2 先决条件

  1. PostgreSQL 需要 9.6 版本及以上。
  2. 从源码构建和部署 PostgreSQL
  3. 设置 pg_config 命令在环境变量 PATH 中。

3 pg_wait_sampling 安装

3.1 源码下载

下载 pg_wait_sampling 最新源码,到 /soft 文件夹。

su - postgres 
#postgre>
cd /soft
git clone https://github.com/postgrespro/pg_wait_sampling.git
cd pg_wait_sampling
make USE_PGXS=1 &&  make USE_PGXS=1 install

3.2 数据库配置

3.2.1 配置 pg_stat_statements 插件

由于 pg_wait_sampling 还需要收集 pg_stat_statements 扩展提供SQL 语句的执行计划,所以需要一起配置。

3.2.2 配置 pg_wait_sampling 插件

此插件在启动数据库时,必须使用共享缓存用于存放计数器。所以需要配置 shared_preload_libraries 参数。并且还需要配置 pg_wait_sampling 插件。

#postgre>
vi $PGDATA/postgresql.conf
# postgresql.conf
shared_preload_libraries = 'pg_wait_sampling,pg_stat_statements'

重启数据库之后,在每个数据库中安装扩展。

pg_ctl restart -D $PGDATA
waiting for server to shut down.... done
server stopped
waiting for server to start....2024-06-11 14:41:53.143 CST   [56329]LOG:  00000: redirecting log output to logging collector process
2024-06-11 14:41:53.143 CST   [56329]HINT:  Future log output will appear in directory "pg_log".
2024-06-11 14:41:53.143 CST   [56329]LOCATION:  SysLogger_Start, syslogger.c:712
 done
server started
su - postgres
#postgres>
psql -U postgres -d testdb -c "CREATE EXTENSION pg_wait_sampling CASCADE;"
psql -U postgres -d postgres -c "CREATE EXTENSION pg_wait_sampling CASCADE;"
psql -U postgres -d template1 -c "CREATE EXTENSION pg_wait_sampling CASCADE;"

4 pg_wait_sampling 配置

此处使用 pg_wait_sampling 扩展的默认配置,关于默认参数的详细说明,请参考 pg_wait_sampling 参数 章节。